var Plugin = require('../plugin');

//
// [Usage]
//
// https://github.com/skygragon/leetcode-cli-plugins/blob/master/docs/company.md
//
var plugin = new Plugin(100, 'company', '2017.12.18',
    'Plugin to query by company for free user.');

// NOTE: those data is collected from different websites that has similar questions:
// * careercup.com
// * lintcode.com
// * 1point3acres.com
// * other results from google search
var COMPONIES = {
  '1': ['adobe', 'airbnb', 'amazon', 'apple', 'bloomberg', 'dropbox', 'facebook', 'linkedin', 'microsoft', 'uber', 'yahoo', 'yelp'],
  '2': ['adobe', 'airbnb', 'amazon', 'bloomberg', 'microsoft'],
  '3': ['adobe', 'amazon', 'bloomberg', 'yelp'],
  '4': ['adobe', 'apple', 'dropbox', 'google', 'microsoft', 'yahoo', 'zenefits'],
  '5': ['amazon', 'bloomberg', 'microsoft'],
  '7': ['apple', 'bloomberg'],
  '8': ['amazon', 'bloomberg', 'microsoft', 'uber'],

  '10': ['airbnb', 'facebook', 'google', 'twitter', 'uber'],
  '11': ['bloomberg'],
  '12': ['twitter'],
  '13': ['bloomberg', 'facebook', 'microsoft', 'uber', 'yahoo'],
  '14': ['yelp'],
  '15': ['adobe', 'amazon', 'bloomberg', 'facebook', 'microsoft'],
  '16': ['bloomberg'],
  '17': ['amazon', 'dropbox', 'facebook', 'google', 'uber'],
  '18': ['linkedin'],
  '20': ['airbnb', 'amazon', 'bloomberg', 'facebook', 'google', 'microsoft', 'twitter', 'zenefits'],
  '21': ['amazon', 'apple', 'linkedin', 'microsoft'],
  '22': ['google', 'uber', 'zenefits'],
  '23': ['airbnb', 'amazon', 'facebook', 'google', 'linkedin', 'microsoft', 'twitter', 'uber'],
  '24': ['bloomberg', 'microsoft', 'uber'],
  '25': ['facebook', 'microsoft'],
  '26': ['bloomberg', 'facebook', 'microsoft'],
  '28': ['apple', 'facebook', 'microsoft', 'pocketgems'],
  '31': ['google'],
  '33': ['bloomberg', 'facebook', 'linkedin', 'microsoft', 'uber'],
  '34': ['linkedin'],
  '36': ['apple', 'snapchat', 'uber'],
  '37': ['snapchat', 'uber'],
  '38': ['facebook'],
  '39': ['snapchat', 'uber'],
  '40': ['snapchat'],
  '42': ['amazon', 'apple', 'bloomberg', 'google', 'twitter', 'zenefits'],
  '43': ['facebook', 'twitter'],
  '44': ['facebook', 'google', 'snapchat', 'twitter', 'twosigma'],
  '46': ['linkedin', 'microsoft'],
  '47': ['linkedin', 'microsoft'],
  '48': ['amazon', 'apple', 'microsoft'],
  '49': ['amazon', 'bloomberg', 'facebook', 'uber', 'yelp'],
  '50': ['bloomberg', 'facebook', 'google', 'linkedin'],
  '52': ['zenefits'],
  '53': ['bloomberg', 'linkedin', 'microsoft'],
  '54': ['google', 'microsoft', 'uber'],
  '55': ['microsoft'],
  '56': ['bloomberg', 'facebook', 'google', 'linkedin', 'microsoft', 'twitter', 'yelp'],
  '57': ['facebook', 'google', 'linkedin'],
  '60': ['twitter'],
  '62': ['bloomberg'],
  '63': ['bloomberg'],
  '65': ['linkedin'],
  '66': ['google'],
  '67': ['facebook'],
  '68': ['airbnb', 'facebook', 'linkedin'],
  '69': ['apple', 'bloomberg', 'facebook'],
  '70': ['adobe', 'apple'],
  '71': ['facebook', 'microsoft'],
  '73': ['amazon', 'microsoft'],
  '75': ['facebook', 'microsoft', 'pocketgems'],
  '76': ['facebook', 'linkedin', 'snapchat', 'uber'],
  '78': ['amazon', 'bloomberg', 'facebook', 'uber'],
  '79': ['bloomberg', 'facebook', 'microsoft'],
  '80': ['facebook'],
  '85': ['facebook'],
  '88': ['bloomberg', 'facebook', 'microsoft'],
  '89': ['amazon'],
  '90': ['facebook'],
  '91': ['facebook', 'microsoft', 'uber'],
  '94': ['microsoft'],
  '96': ['snapchat'],
  '98': ['amazon', 'bloomberg', 'facebook', 'microsoft'],

  '100': ['bloomberg'],
  '101': ['bloomberg', 'linkedin', 'microsoft'],
  '102': ['amazon', 'apple', 'bloomberg', 'facebook', 'linkedin', 'microsoft'],
  '103': ['bloomberg', 'linkedin', 'microsoft'],
  '104': ['apple', 'linkedin', 'uber', 'yahoo'],
  '105': ['bloomberg'],
  '106': ['microsoft'],
  '108': ['airbnb'],
  '109': ['zenefits'],
  '110': ['bloomberg'],
  '112': ['microsoft'],
  '113': ['bloomberg'],
  '114': ['microsoft'],
  '116': ['microsoft'],
  '117': ['bloomberg', 'facebook', 'microsoft'],
  '118': ['apple', 'twitter'],
  '119': ['amazon'],
  '121': ['amazon', 'bloomberg', 'facebook', 'microsoft', 'uber'],
  '122': ['bloomberg'],
  '124': ['baidu', 'microsoft'],
  '125': ['facebook', 'microsoft', 'uber', 'zenefits'],
  '126': ['amazon', 'yelp'],
  '127': ['amazon', 'facebook', 'linkedin', 'snapchat', 'yelp'],
  '128': ['facebook', 'google'],
  '131': ['bloomberg'],
  '133': ['facebook', 'google', 'pocketgems', 'uber'],
  '136': ['airbnb', 'palantir'],
  '138': ['amazon', 'bloomberg', 'microsoft', 'uber'],
  '139': ['amazon', 'bloomberg', 'facebook', 'google', 'pocketgems', 'uber', 'yahoo'],
  '140': ['dropbox', 'google', 'snapchat', 'twitter', 'uber'],
  '141': ['amazon', 'bloomberg', 'microsoft', 'yahoo'],
  '146': ['amazon', 'bloomberg', 'facebook', 'google', 'microsoft', 'palantir', 'snapchat', 'twitter', 'uber', 'yahoo', 'zenefits'],
  '149': ['apple', 'linkedin', 'twitter'],
  '150': ['linkedin'],
  '151': ['apple', 'bloomberg', 'microsoft', 'snapchat', 'yelp'],
  '152': ['linkedin'],
  '153': ['microsoft'],
  '155': ['amazon', 'bloomberg', 'google', 'snapchat', 'uber', 'zenefits'],
  '156': ['linkedin'],
  '157': ['facebook'],
  '158': ['bloomberg', 'facebook', 'google'],
  '159': ['google'],
  '160': ['airbnb', 'amazon', 'bloomberg', 'microsoft'],
  '161': ['facebook', 'snapchat', 'twitter', 'uber'],
  '162': ['google', 'microsoft'],
  '163': ['google'],
  '165': ['apple', 'microsoft'],
  '166': ['google'],
  '167': ['amazon'],
  '168': ['facebook', 'microsoft', 'zenefits'],
  '169': ['adobe', 'zenefits'],
  '170': ['linkedin'],
  '171': ['microsoft', 'uber'],
  '172': ['bloomberg'],
  '173': ['facebook', 'google', 'linkedin', 'microsoft'],
  '174': ['microsoft'],
  '186': ['amazon', 'microsoft', 'uber'],
  '187': ['linkedin'],
  '189': ['amazon', 'bloomberg', 'microsoft'],
  '190': ['airbnb', 'apple'],
  '191': ['apple', 'microsoft'],
  '195': ['adobe'],
  '198': ['airbnb', 'linkedin'],
  '199': ['amazon'],
  '200': ['amazon', 'facebook', 'google', 'microsoft', 'zenefits'],
  '202': ['airbnb', 'twitter', 'uber'],
  '204': ['amazon', 'microsoft'],
  '205': ['linkedin'],
  '206': ['adobe', 'amazon', 'apple', 'bloomberg', 'facebook', 'microsoft', 'snapchat', 'twitter', 'uber', 'yahoo', 'yelp', 'zenefits'],
  '207': ['apple', 'uber', 'yelp', 'zenefits'],
  '208': ['bloomberg', 'facebook', 'google', 'microsoft', 'twitter', 'uber'],
  '209': ['facebook'],
  '210': ['facebook', 'zenefits'],
  '211': ['facebook'],
  '212': ['airbnb', 'google', 'microsoft'],
  '213': ['microsoft'],
  '214': ['google', 'pocketgems'],
  '215': ['amazon', 'apple', 'bloomberg', 'facebook', 'microsoft', 'pocketgems'],
  '217': ['airbnb', 'palantir', 'yahoo'],
  '218': ['facebook', 'google', 'microsoft', 'twitter', 'yelp'],
  '219': ['airbnb', 'palantir'],
  '220': ['airbnb', 'palantir'],
  '221': ['airbnb', 'apple', 'facebook'],
  '224': ['google'],
  '225': ['bloomberg'],
  '227': ['airbnb'],
  '228': ['google'],
  '229': ['zenefits'],
  '230': ['bloomberg', 'google', 'uber'],
  '231': ['google'],
  '232': ['bloomberg', 'microsoft'],
  '234': ['amazon', 'facebook'],
  '235': ['amazon', 'facebook', 'microsoft', 'twitter'],
  '236': ['amazon', 'apple', 'facebook', 'linkedin', 'microsoft'],
  '237': ['adobe', 'apple', 'microsoft'],
  '238': ['amazon', 'apple', 'facebook', 'linkedin', 'microsoft'],
  '239': ['amazon', 'google', 'zenefits'],
  '240': ['amazon', 'apple', 'google'],
  '242': ['amazon', 'uber', 'yelp'],
  '243': ['linkedin'],
  '244': ['linkedin'],
  '245': ['linkedin'],
  '246': ['google'],
  '247': ['google'],
  '249': ['google', 'uber'],
  '251': ['airbnb', 'google', 'twitter', 'zenefits'],
  '252': ['facebook'],
  '253': ['facebook', 'google', 'snapchat'],
  '254': ['linkedin', 'uber'],
  '255': ['zenefits'],
  '256': ['linkedin'],
  '257': ['apple', 'facebook', 'google'],
  '258': ['adobe', 'microsoft'],
  '259': ['google'],
  '261': ['facebook', 'google', 'zenefits'],
  '262': ['uber'],
  '265': ['facebook'],
  '266': ['bloomberg', 'google', 'uber'],
  '268': ['bloomberg', 'microsoft'],
  '269': ['airbnb', 'facebook', 'google', 'pocketgems', 'snapchat', 'twitter'],
  '270': ['google', 'microsoft', 'snapchat'],
  '271': ['google'],
  '272': ['google'],
  '273': ['facebook', 'microsoft'],
  '274': ['bloomberg', 'facebook', 'google'],
  '275': ['facebook'],
  '276': ['google'],
  '277': ['facebook', 'linkedin'],
  '278': ['facebook'],
  '279': ['google'],
  '280': ['google'],
  '281': ['google'],
  '282': ['facebook', 'google'],
  '283': ['bloomberg', 'facebook'],
  '284': ['apple', 'google', 'yahoo'],
  '285': ['facebook', 'microsoft', 'pocketgems'],
  '286': ['facebook', 'google'],
  '287': ['bloomberg'],
  '288': ['google'],
  '289': ['dropbox', 'google', 'snapchat', 'twosigma'],
  '290': ['dropbox', 'uber'],
  '291': ['dropbox', 'uber'],
  '292': ['adobe'],
  '293': ['google'],
  '294': ['google'],
  '295': ['google'],
  '296': ['twitter'],
  '297': ['amazon', 'bloomberg', 'facebook', 'google', 'linkedin', 'microsoft', 'uber', 'yahoo'],
  '298': ['google'],
  '300': ['microsoft'],
  '301': ['facebook'],
  '302': ['google'],
  '303': ['palantir'],
  '305': ['google'],
  '308': ['google'],
  '309': ['google'],
  '310': ['google'],
  '311': ['facebook', 'linkedin'],
  '312': ['google', 'snapchat'],
  '313': ['google'],
  '314': ['facebook', 'google', 'snapchat'],
  '315': ['google'],
  '316': ['google'],
  '317': ['google', 'zenefits'],
  '318': ['google'],
  '320': ['google'],
  '321': ['google'],
  '323': ['google', 'twitter'],
  '324': ['google'],
  '325': ['facebook', 'palantir'],
  '326': ['google'],
  '327': ['google'],
  '329': ['google'],
  '330': ['google'],
  '331': ['google'],
  '332': ['google'],
  '333': ['microsoft'],
  '334': ['facebook'],
  '336': ['airbnb', 'google'],
  '337': ['uber'],
  '339': ['linkedin'],
  '340': ['google'],
  '341': ['facebook', 'google', 'twitter'],
  '342': ['twosigma'],
  '345': ['google'],
  '346': ['google'],
  '347': ['pocketgems', 'yelp'],
  '348': ['google', 'microsoft'],
  '349': ['twosigma'],
  '351': ['google'],
  '353': ['google'],
  '354': ['google'],
  '355': ['amazon', 'twitter'],
  '356': ['google'],
  '357': ['google'],
  '358': ['google'],
  '359': ['google'],
  '360': ['google'],
  '361': ['google'],
  '362': ['dropbox', 'google'],
  '363': ['google'],
  '364': ['linkedin'],
  '365': ['microsoft'],
  '366': ['linkedin'],
  '367': ['linkedin'],
  '368': ['google'],
  '369': ['google'],
  '370': ['google'],
  '373': ['google', 'uber'],
  '374': ['google'],
  '375': ['google'],
  '377': ['facebook', 'google', 'snapchat'],
  '378': ['google', 'twitter'],
  '379': ['google'],
  '380': ['amazon', 'facebook', 'google', 'pocketgems', 'twitter', 'uber', 'yelp'],
  '381': ['yelp'],
  '382': ['google'],
  '383': ['apple'],
  '385': ['airbnb'],
  '386': ['bloomberg'],
  '387': ['amazon', 'bloomberg', 'microsoft'],
  '388': ['google'],
  '389': ['google'],
  '391': ['google'],
  '393': ['google'],
  '394': ['google', 'yelp'],
  '395': ['baidu'],
  '396': ['amazon'],
  '397': ['baidu', 'google'],
  '398': ['facebook'],
  '399': ['google'],
  '400': ['google'],
  '401': ['google'],
  '402': ['google', 'snapchat'],
  '403': ['snapchat'],
  '404': ['facebook'],
  '406': ['google'],
  '407': ['google', 'twitter'],
  '408': ['google'],
  '409': ['google'],
  '410': ['baidu', 'facebook'],
  '411': ['google'],
  '413': ['baidu'],
  '414': ['amazon'],
  '415': ['airbnb', 'google'],
  '416': ['ebay'],
  '417': ['google'],
  '418': ['google'],
  '419': ['microsoft'],
  '421': ['google'],
  '422': ['google'],
  '424': ['pocketgems'],
  '425': ['google'],
  '432': ['uber'],
  '433': ['twitter'],
  '438': ['amazon'],
  '439': ['snapchat'],
  '442': ['pocketgems'],
  '443': ['bloomberg', 'microsoft', 'snapchat', 'yelp'],
  '444': ['google'],
  '445': ['bloomberg', 'microsoft'],
  '446': ['baidu'],
  '447': ['google'],
  '448': ['google'],
  '449': ['amazon'],
  '450': ['uber'],
  '451': ['amazon', 'google'],
  '452': ['microsoft'],
  '453': ['indeed'],
  '459': ['amazon', 'google'],
  '460': ['amazon', 'google'],
  '461': ['facebook'],
  '463': ['google'],
  '464': ['linkedin'],
  '465': ['google'],
  '468': ['twitter'],
  '469': ['google'],
  '471': ['google'],
  '474': ['google'],
  '475': ['google'],
  '477': ['facebook'],
  '479': ['yahoo'],
  '480': ['google'],
  '481': ['google'],
  '482': ['google'],
  '483': ['google'],
  '484': ['google'],
  '485': ['google'],
  '486': ['google'],
  '487': ['google'],
  '488': ['baidu'],
  '490': ['google'],
  '491': ['yahoo'],
  '493': ['google'],
  '494': ['facebook', 'google'],
  '498': ['google'],
  '500': ['mathworks'],
  '501': ['google'],
  '503': ['google'],
  '505': ['google'],
  '506': ['google'],
  '508': ['amazon'],
  '513': ['microsoft'],
  '514': ['google'],
  '515': ['linkedin'],
  '516': ['amazon', 'uber'],
  '517': ['amazon'],
  '520': ['google'],
  '521': ['google'],
  '522': ['google'],
  '523': ['facebook'],
  '524': ['google'],
  '525': ['facebook'],
  '526': ['google'],
  '527': ['google', 'snapchat'],
  '529': ['amazon'],
  '530': ['google'],
  '531': ['google'],
  '532': ['amazon'],
  '533': ['google'],
  '534': ['amazon', 'facebook', 'google', 'uber'],
  '535': ['amazon', 'facebook', 'google', 'uber'],
  '536': ['amazon'],
  '537': ['amazon'],
  '538': ['amazon'],
  '541': ['google'],
  '542': ['google'],
  '543': ['facebook', 'google'],
  '544': ['google'],
  '545': ['amazon', 'google'],
  '547': ['bloomberg', 'twosigma'],
  '548': ['alibaba'],
  '549': ['google'],
  '551': ['google'],
  '552': ['google'],
  '553': ['amazon'],
  '554': ['facebook'],
  '555': ['alibaba'],
  '556': ['bloomberg'],
  '557': ['zappos'],
  '560': ['google'],
  '562': ['google'],
  '563': ['indeed'],
  '564': ['yelp'],
  '566': ['mathworks'],
  '567': ['microsoft'],
  '568': ['google'],
  '569': ['google'],
  '570': ['bloomberg'],
  '572': ['ebay', 'facebook', 'google'],
  '576': ['baidu'],
  '578': ['facebook'],
  '579': ['amazon'],
  '580': ['twitter'],
  '581': ['google'],
  '582': ['bloomberg'],
  '583': ['google'],
  '585': ['twitter'],
  '586': ['twitter'],
  '587': ['google'],
  '591': ['microsoft'],
  '597': ['facebook'],
  '599': ['yelp'],
  '602': ['facebook'],
  '604': ['google'],
  '605': ['linkedin'],
  '606': ['amazon'],
  '608': ['twitter'],
  '616': ['google'],
  '617': ['amazon'],
  '621': ['facebook'],
  '631': ['microsoft'],
  '633': ['linkedin'],
  '635': ['snapchat'],
  '636': ['facebook', 'uber'],
  '637': ['facebook'],
  '638': ['google'],
  '639': ['facebook'],
  '640': ['amazon'],
  '642': ['facebook', 'microsoft'],
  '643': ['google'],
  '644': ['google'],
  '645': ['amazon'],
  '646': ['amazon'],
  '647': ['facebook', 'linkedin'],
  '648': ['uber'],
  '650': ['microsoft'],
  '651': ['google', 'microsoft'],
  '652': ['google'],
  '653': ['facebook'],
  '654': ['microsoft'],
  '656': ['google'],
  '657': ['google'],
  '658': ['google'],
  '659': ['google'],
  '661': ['amazon'],
  '662': ['amazon'],
  '663': ['amazon'],
  '665': ['google'],
  '667': ['google'],
  '668': ['google'],
  '669': ['bloomberg'],
  '670': ['facebook'],
  '671': ['linkedin'],
  '672': ['microsoft'],
  '673': ['facebook'],
  '674': ['facebook'],
  '675': ['amazon'],
  '676': ['google'],
  '679': ['google'],
  '680': ['facebook'],
  '681': ['google'],
  '682': ['amazon'],
  '683': ['google'],
  '684': ['google'],
  '685': ['google'],
  '686': ['google'],
  '687': ['google'],
  '689': ['facebook', 'google'],
  '690': ['uber'],
  '692': ['amazon', 'bloomberg', 'uber', 'yelp'],
  '694': ['amazon'],
  '698': ['linkedin'],
  '699': ['uber'],
  '711': ['amazon'],
  '714': ['bloomberg', 'facebook'],
  '716': ['linkedin'],
  '719': ['google'],
  '721': ['facebook'],
  '722': ['microsoft'],
  '725': ['amazon'],
  '726': ['google'],
  '727': ['google'],
  '729': ['google'],
  '730': ['linkedin'],
  '731': ['google']
};

var TAGS = {
  '1': ['array', 'hash-table'],
  '2': ['linked-list', 'math'],
  '3': ['hash-table', 'string', 'two-pointers'],
  '4': ['array', 'binary-search', 'divide-and-conquer'],
  '5': ['string'],
  '6': ['string'],
  '7': ['math'],
  '8': ['math', 'string'],
  '9': ['math'],

  '10': ['backtracking', 'dynamic-programming', 'string'],
  '11': ['array', 'two-pointers'],
  '12': ['math', 'string'],
  '13': ['math', 'string'],
  '14': ['string'],
  '15': ['array', 'two-pointers'],
  '16': ['array', 'two-pointers'],
  '17': ['backtracking', 'string'],
  '18': ['array', 'hash-table', 'two-pointers'],
  '19': ['linked-list', 'two-pointers'],
  '20': ['stack', 'string'],
  '21': ['linked-list'],
  '22': ['backtracking', 'string'],
  '23': ['divide-and-conquer', 'heap', 'linked-list'],
  '24': ['linked-list'],
  '25': ['linked-list'],
  '26': ['array', 'two-pointers'],
  '27': ['array', 'two-pointers'],
  '28': ['string', 'two-pointers'],
  '29': ['binary-search', 'math'],
  '30': ['hash-table', 'string', 'two-pointers'],
  '31': ['array'],
  '32': ['dynamic-programming', 'string'],
  '33': ['array', 'binary-search'],
  '34': ['array', 'binary-search'],
  '35': ['array', 'binary-search'],
  '36': ['hash-table'],
  '37': ['backtracking', 'hash-table'],
  '38': ['string'],
  '39': ['array', 'backtracking'],
  '40': ['array', 'backtracking'],
  '41': ['array'],
  '42': ['array', 'stack', 'two-pointers'],
  '43': ['math', 'string'],
  '44': ['backtracking', 'dynamic-programming', 'greedy', 'string'],
  '45': ['array', 'greedy'],
  '46': ['backtracking'],
  '47': ['backtracking'],
  '48': ['array'],
  '49': ['hash-table', 'string'],
  '50': ['binary-search', 'math'],
  '51': ['backtracking'],
  '52': ['backtracking'],
  '53': ['array', 'divide-and-conquer', 'dynamic-programming'],
  '54': ['array'],
  '55': ['array', 'greedy'],
  '56': ['array', 'sort'],
  '57': ['array', 'sort'],
  '58': ['string'],
  '59': ['array'],
  '60': ['backtracking', 'math'],
  '61': ['linked-list', 'two-pointers'],
  '62': ['array', 'dynamic-programming'],
  '63': ['array', 'dynamic-programming'],
  '64': ['array', 'dynamic-programming'],
  '65': ['math', 'string'],
  '66': ['array', 'math'],
  '67': ['math', 'string'],
  '68': ['string'],
  '69': ['binary-search', 'math'],
  '70': ['dynamic-programming'],
  '71': ['stack', 'string'],
  '72': ['dynamic-programming', 'string'],
  '73': ['array'],
  '74': ['array', 'binary-search'],
  '75': ['array', 'sort', 'two-pointers'],
  '76': ['hash-table', 'string', 'two-pointers'],
  '77': ['backtracking'],
  '78': ['array', 'backtracking', 'bit-manipulation'],
  '79': ['array', 'backtracking'],
  '80': ['array', 'two-pointers'],
  '81': ['array', 'binary-search'],
  '82': ['linked-list'],
  '83': ['linked-list'],
  '84': ['array', 'stack'],
  '85': ['array', 'dynamic-programming', 'hash-table', 'stack'],
  '86': ['linked-list', 'two-pointers'],
  '87': ['dynamic-programming', 'string'],
  '88': ['array', 'two-pointers'],
  '89': ['backtracking'],
  '90': ['array', 'backtracking'],
  '91': ['dynamic-programming', 'string'],
  '92': ['linked-list'],
  '93': ['backtracking', 'string'],
  '94': ['hash-table', 'stack', 'tree'],
  '95': ['dynamic-programming', 'tree'],
  '96': ['dynamic-programming', 'tree'],
  '97': ['dynamic-programming', 'string'],
  '98': ['depth-first-search', 'tree'],
  '99': ['depth-first-search', 'tree'],

  '100': ['depth-first-search', 'tree'],
  '101': ['breadth-first-search', 'depth-first-search', 'tree'],
  '102': ['breadth-first-search', 'tree'],
  '103': ['breadth-first-search', 'stack', 'tree'],
  '104': ['depth-first-search', 'tree'],
  '105': ['array', 'depth-first-search', 'tree'],
  '106': ['array', 'depth-first-search', 'tree'],
  '107': ['breadth-first-search', 'tree'],
  '108': ['depth-first-search', 'tree'],
  '109': ['depth-first-search', 'linked-list'],
  '110': ['depth-first-search', 'tree'],
  '111': ['breadth-first-search', 'depth-first-search', 'tree'],
  '112': ['depth-first-search', 'tree'],
  '113': ['depth-first-search', 'tree'],
  '114': ['depth-first-search', 'tree'],
  '115': ['dynamic-programming', 'string'],
  '116': ['depth-first-search', 'tree'],
  '117': ['depth-first-search', 'tree'],
  '118': ['array'],
  '119': ['array'],
  '120': ['array', 'dynamic-programming'],
  '121': ['array', 'dynamic-programming'],
  '122': ['array', 'greedy'],
  '123': ['array', 'dynamic-programming'],
  '124': ['depth-first-search', 'tree'],
  '125': ['string', 'two-pointers'],
  '126': ['array', 'backtracking', 'breadth-first-search', 'string'],
  '127': ['breadth-first-search'],
  '128': ['array', 'union-find'],
  '129': ['depth-first-search', 'tree'],
  '130': ['breadth-first-search', 'depth-first-search', 'union-find'],
  '131': ['backtracking'],
  '132': ['dynamic-programming'],
  '133': ['breadth-first-search', 'depth-first-search', 'graph'],
  '134': ['greedy'],
  '135': ['greedy'],
  '136': ['bit-manipulation', 'hash-table'],
  '137': ['bit-manipulation'],
  '138': ['hash-table', 'linked-list'],
  '139': ['dynamic-programming'],
  '140': ['backtracking', 'dynamic-programming'],
  '141': ['linked-list', 'two-pointers'],
  '142': ['linked-list', 'two-pointers'],
  '143': ['linked-list'],
  '144': ['stack', 'tree'],
  '145': ['stack', 'tree'],
  '146': ['design'],
  '147': ['linked-list', 'sort'],
  '148': ['linked-list', 'sort'],
  '149': ['hash-table', 'math'],
  '150': ['stack'],
  '151': ['string'],
  '152': ['array', 'dynamic-programming'],
  '153': ['array', 'binary-search'],
  '154': ['array', 'binary-search'],
  '155': ['design', 'stack'],
  '156': ['tree'],
  '157': ['string'],
  '158': ['string'],
  '159': ['hash-table', 'string', 'two-pointers'],
  '160': ['linked-list'],
  '161': ['string'],
  '162': ['array', 'binary-search'],
  '163': ['array'],
  '164': ['sort'],
  '165': ['string'],
  '166': ['hash-table', 'math'],
  '167': ['array', 'binary-search', 'two-pointers'],
  '168': ['math'],
  '169': ['array', 'bit-manipulation', 'divide-and-conquer'],
  '170': ['design', 'hash-table'],
  '171': ['math'],
  '172': ['math'],
  '173': ['design', 'stack', 'tree'],
  '174': ['binary-search', 'dynamic-programming'],
  '179': ['sort'],
  '186': ['string'],
  '187': ['bit-manipulation', 'hash-table'],
  '188': ['dynamic-programming'],
  '189': ['array'],
  '190': ['bit-manipulation'],
  '191': ['bit-manipulation'],
  '198': ['dynamic-programming'],
  '199': ['breadth-first-search', 'depth-first-search', 'tree'],
  '200': ['breadth-first-search', 'depth-first-search', 'union-find'],
  '201': ['bit-manipulation'],
  '202': ['hash-table', 'math'],
  '203': ['linked-list'],
  '204': ['hash-table', 'math'],
  '205': ['hash-table'],
  '206': ['linked-list'],
  '207': ['breadth-first-search', 'depth-first-search', 'graph', 'topological-sort'],
  '208': ['design', 'trie'],
  '209': ['array', 'binary-search', 'two-pointers'],
  '210': ['breadth-first-search', 'depth-first-search', 'graph', 'topological-sort'],
  '211': ['backtracking', 'design', 'trie'],
  '212': ['backtracking', 'trie'],
  '213': ['dynamic-programming'],
  '214': ['string'],
  '215': ['divide-and-conquer', 'heap'],
  '216': ['array', 'backtracking'],
  '217': ['array', 'hash-table'],
  '218': ['binary-indexed-tree', 'divide-and-conquer', 'heap', 'segment-tree'],
  '219': ['array', 'hash-table'],
  '220': ['binary-search-tree'],
  '221': ['dynamic-programming'],
  '222': ['binary-search', 'tree'],
  '223': ['math'],
  '224': ['math', 'stack'],
  '225': ['design', 'stack'],
  '226': ['tree'],
  '227': ['string'],
  '228': ['array'],
  '229': ['array'],
  '230': ['binary-search', 'tree'],
  '231': ['bit-manipulation', 'math'],
  '232': ['design', 'stack'],
  '233': ['math'],
  '234': ['linked-list', 'two-pointers'],
  '235': ['tree'],
  '236': ['tree'],
  '237': ['linked-list'],
  '238': ['array'],
  '239': ['heap'],
  '240': ['binary-search', 'divide-and-conquer'],
  '241': ['divide-and-conquer'],
  '242': ['hash-table', 'sort'],
  '243': ['array'],
  '244': ['design', 'hash-table'],
  '245': ['array'],
  '246': ['hash-table', 'math'],
  '247': ['math'],
  '248': ['math'],
  '249': ['hash-table', 'string'],
  '250': ['tree'],
  '251': ['design'],
  '252': ['sort'],
  '253': ['greedy', 'heap', 'sort'],
  '254': ['backtracking'],
  '255': ['stack', 'tree'],
  '256': ['dynamic-programming'],
  '257': ['depth-first-search', 'tree'],
  '258': ['math'],
  '259': ['array', 'two-pointers'],
  '260': ['bit-manipulation'],
  '261': ['breadth-first-search', 'depth-first-search', 'graph', 'union-find'],
  '263': ['math'],
  '264': ['dynamic-programming', 'heap', 'math'],
  '265': ['dynamic-programming'],
  '266': ['hash-table'],
  '267': ['backtracking'],
  '268': ['array', 'bit-manipulation', 'math'],
  '269': ['graph', 'topological-sort'],
  '270': ['binary-search', 'tree'],
  '271': ['string'],
  '272': ['stack', 'tree'],
  '273': ['math', 'string'],
  '274': ['hash-table', 'sort'],
  '275': ['binary-search'],
  '276': ['dynamic-programming'],
  '277': ['array'],
  '278': ['binary-search'],
  '279': ['breadth-first-search', 'dynamic-programming', 'math'],
  '280': ['array', 'sort'],
  '281': ['design'],
  '282': ['divide-and-conquer'],
  '283': ['array', 'two-pointers'],
  '284': ['design'],
  '285': ['tree'],
  '286': ['breadth-first-search'],
  '287': ['array', 'binary-search', 'two-pointers'],
  '288': ['design', 'hash-table'],
  '289': ['array'],
  '290': ['hash-table'],
  '291': ['backtracking'],
  '293': ['string'],
  '294': ['backtracking'],
  '295': ['design', 'heap'],
  '296': ['math', 'sort'],
  '297': ['design', 'tree'],
  '298': ['tree'],
  '299': ['hash-table'],
  '300': ['binary-search', 'dynamic-programming'],
  '301': ['breadth-first-search', 'depth-first-search'],
  '302': ['binary-search'],
  '303': ['dynamic-programming'],
  '304': ['dynamic-programming'],
  '305': ['union-find'],
  '307': ['binary-indexed-tree', 'segment-tree'],
  '308': ['binary-indexed-tree', 'segment-tree'],
  '309': ['dynamic-programming'],
  '310': ['breadth-first-search', 'graph'],
  '311': ['hash-table'],
  '312': ['divide-and-conquer', 'dynamic-programming'],
  '313': ['heap', 'math'],
  '314': ['hash-table'],
  '315': ['binary-indexed-tree', 'divide-and-conquer', 'segment-tree', 'binary-search-tree'],
  '316': ['greedy', 'stack'],
  '317': ['breadth-first-search'],
  '318': ['bit-manipulation'],
  '319': ['math'],
  '320': ['backtracking', 'bit-manipulation'],
  '321': ['dynamic-programming', 'greedy'],
  '322': ['dynamic-programming'],
  '323': ['breadth-first-search', 'depth-first-search', 'graph', 'union-find'],
  '324': ['sort'],
  '325': ['hash-table'],
  '326': ['math'],
  '327': ['divide-and-conquer', 'binary-search-tree'],
  '328': ['linked-list'],
  '329': ['depth-first-search', 'topological-sort'],
  '330': ['greedy'],
  '331': ['stack'],
  '332': ['depth-first-search', 'graph'],
  '333': ['tree'],
  '335': ['math'],
  '336': ['hash-table', 'string', 'trie'],
  '337': ['depth-first-search', 'tree'],
  '338': ['bit-manipulation', 'dynamic-programming'],
  '339': ['depth-first-search'],
  '340': ['hash-table', 'string'],
  '341': ['design', 'stack'],
  '342': ['bit-manipulation'],
  '343': ['dynamic-programming', 'math'],
  '344': ['string', 'two-pointers'],
  '345': ['string', 'two-pointers'],
  '346': ['design', 'queue'],
  '347': ['hash-table', 'heap'],
  '348': ['design'],
  '349': ['binary-search', 'hash-table', 'sort', 'two-pointers'],
  '350': ['binary-search', 'hash-table', 'sort', 'two-pointers'],
  '351': ['backtracking', 'dynamic-programming'],
  '352': ['binary-search-tree'],
  '353': ['design', 'queue'],
  '354': ['binary-search', 'dynamic-programming'],
  '355': ['design', 'hash-table', 'heap'],
  '356': ['hash-table', 'math'],
  '357': ['backtracking', 'dynamic-programming', 'math'],
  '358': ['greedy', 'hash-table', 'heap'],
  '359': ['design', 'hash-table'],
  '360': ['math', 'two-pointers'],
  '361': ['dynamic-programming'],
  '362': ['design'],
  '363': ['binary-search', 'dynamic-programming', 'queue'],
  '364': ['depth-first-search'],
  '365': ['math'],
  '366': ['depth-first-search', 'tree'],
  '367': ['binary-search', 'math'],
  '368': ['dynamic-programming', 'math'],
  '369': ['linked-list'],
  '370': ['array'],
  '371': ['bit-manipulation'],
  '372': ['math'],
  '373': ['heap'],
  '374': ['binary-search'],
  '375': ['dynamic-programming'],
  '376': ['dynamic-programming', 'greedy'],
  '377': ['dynamic-programming'],
  '378': ['binary-search', 'heap'],
  '379': ['design', 'linked-list'],
  '380': ['array', 'design', 'hash-table'],
  '381': ['array', 'design', 'hash-table'],
  '382': ['reservoir-sampling'],
  '383': ['string'],
  '385': ['stack', 'string'],
  '387': ['hash-table', 'string'],
  '389': ['bit-manipulation', 'hash-table'],
  '392': ['binary-search', 'dynamic-programming', 'greedy'],
  '393': ['bit-manipulation'],
  '394': ['depth-first-search', 'stack'],
  '396': ['math'],
  '397': ['bit-manipulation', 'math'],
  '398': ['reservoir-sampling'],
  '399': ['graph'],
  '400': ['math'],
  '401': ['backtracking', 'bit-manipulation'],
  '402': ['greedy', 'stack'],
  '403': ['dynamic-programming'],
  '404': ['tree'],
  '405': ['bit-manipulation'],
  '406': ['greedy'],
  '407': ['breadth-first-search', 'heap'],
  '408': ['string'],
  '409': ['hash-table'],
  '410': ['binary-search', 'dynamic-programming'],
  '411': ['backtracking', 'bit-manipulation'],
  '413': ['dynamic-programming', 'math'],
  '414': ['array'],
  '415': ['math'],
  '416': ['dynamic-programming'],
  '417': ['breadth-first-search', 'depth-first-search'],
  '418': ['dynamic-programming'],
  '421': ['bit-manipulation', 'trie'],
  '423': ['math'],
  '425': ['backtracking', 'trie'],
  '432': ['design'],
  '434': ['string'],
  '435': ['greedy'],
  '436': ['binary-search'],
  '437': ['tree'],
  '438': ['hash-table'],
  '439': ['depth-first-search', 'stack'],
  '441': ['binary-search', 'math'],
  '442': ['array'],
  '443': ['string'],
  '444': ['graph', 'topological-sort'],
  '445': ['linked-list'],
  '446': ['dynamic-programming'],
  '447': ['hash-table'],
  '448': ['array'],
  '449': ['tree'],
  '450': ['tree'],
  '451': ['hash-table', 'heap'],
  '452': ['greedy'],
  '453': ['math'],
  '454': ['binary-search', 'hash-table'],
  '455': ['greedy'],
  '456': ['stack'],
  '459': ['string'],
  '460': ['design'],
  '461': ['bit-manipulation'],
  '462': ['math'],
  '463': ['hash-table'],
  '464': ['dynamic-programming'],
  '466': ['dynamic-programming'],
  '467': ['dynamic-programming'],
  '468': ['string'],
  '469': ['math'],
  '471': ['dynamic-programming'],
  '472': ['depth-first-search', 'dynamic-programming', 'trie'],
  '473': ['depth-first-search'],
  '474': ['dynamic-programming'],
  '475': ['binary-search'],
  '476': ['bit-manipulation'],
  '477': ['bit-manipulation'],
  '483': ['binary-search', 'math'],
  '484': ['greedy'],
  '485': ['array'],
  '486': ['dynamic-programming'],
  '487': ['two-pointers'],
  '488': ['depth-first-search'],
  '490': ['breadth-first-search', 'depth-first-search'],
  '491': ['depth-first-search'],
  '493': ['binary-indexed-tree', 'divide-and-conquer', 'segment-tree', 'binary-search-tree'],
  '494': ['depth-first-search', 'dynamic-programming'],
  '495': ['array'],
  '496': ['stack'],
  '499': ['breadth-first-search', 'depth-first-search'],
  '500': ['hash-table'],
  '501': ['tree'],
  '502': ['greedy', 'heap'],
  '503': ['stack'],
  '505': ['breadth-first-search', 'depth-first-search'],
  '507': ['math'],
  '508': ['hash-table', 'tree'],
  '513': ['breadth-first-search', 'depth-first-search', 'tree'],
  '514': ['depth-first-search', 'divide-and-conquer', 'dynamic-programming'],
  '515': ['breadth-first-search', 'depth-first-search', 'tree'],
  '516': ['dynamic-programming'],
  '517': ['dynamic-programming', 'math'],
  '520': ['string'],
  '521': ['string'],
  '522': ['string'],
  '523': ['dynamic-programming', 'math'],
  '524': ['sort', 'two-pointers'],
  '525': ['hash-table'],
  '526': ['backtracking'],
  '527': ['sort', 'string'],
  '529': ['breadth-first-search', 'depth-first-search'],
  '530': ['array', 'depth-first-search', 'binary-search-tree'],
  '531': ['array', 'depth-first-search'],
  '532': ['array', 'two-pointers'],
  '533': ['array', 'depth-first-search'],
  '535': ['hash-table', 'math'],
  '536': ['string', 'tree'],
  '537': ['math', 'string'],
  '538': ['tree'],
  '539': ['string'],
  '541': ['string'],
  '542': ['breadth-first-search', 'depth-first-search'],
  '543': ['tree'],
  '544': ['string'],
  '545': ['tree'],
  '546': ['depth-first-search', 'dynamic-programming'],
  '547': ['depth-first-search', 'union-find'],
  '548': ['array'],
  '549': ['tree'],
  '551': ['string'],
  '552': ['dynamic-programming'],
  '553': ['math', 'string'],
  '554': ['hash-table'],
  '555': ['string'],
  '556': ['string'],
  '557': ['string'],
  '560': ['array', 'map'],
  '561': ['array'],
  '562': ['array'],
  '563': ['tree'],
  '564': ['string'],
  '565': ['array'],
  '566': ['array'],
  '567': ['two-pointers'],
  '568': ['dynamic-programming'],
  '572': ['tree'],
  '573': ['math'],
  '575': ['hash-table'],
  '576': ['depth-first-search', 'dynamic-programming'],
  '581': ['array'],
  '582': ['queue', 'tree'],
  '583': ['string'],
  '588': ['design'],
  '591': ['stack', 'string'],
  '592': ['math'],
  '593': ['math'],
  '594': ['hash-table'],
  '598': ['math'],
  '599': ['hash-table'],
  '600': ['dynamic-programming'],
  '604': ['design'],
  '605': ['array'],
  '606': ['string', 'tree'],
  '609': ['hash-table', 'string'],
  '611': ['array'],
  '616': ['string'],
  '617': ['tree'],
  '621': ['array', 'greedy', 'queue'],
  '623': ['tree'],
  '624': ['array', 'hash-table'],
  '625': ['math'],
  '628': ['array', 'math'],
  '629': ['dynamic-programming'],
  '630': ['greedy'],
  '631': ['design'],
  '632': ['hash-table', 'string', 'two-pointers'],
  '633': ['math'],
  '634': ['math'],
  '635': ['design', 'string'],
  '636': ['stack'],
  '637': ['tree'],
  '638': ['depth-first-search', 'dynamic-programming'],
  '639': ['dynamic-programming'],
  '640': ['math'],
  '642': ['design', 'trie'],
  '643': ['array'],
  '644': ['array', 'binary-search'],
  '645': ['hash-table', 'math'],
  '646': ['dynamic-programming'],
  '647': ['dynamic-programming', 'string'],
  '648': ['hash-table', 'trie'],
  '649': ['greedy'],
  '650': ['dynamic-programming'],
  '651': ['dynamic-programming', 'greedy', 'math'],
  '652': ['tree'],
  '653': ['tree'],
  '654': ['tree'],
  '655': ['tree'],
  '656': ['dynamic-programming'],
  '657': ['string'],
  '658': ['binary-search'],
  '659': ['greedy', 'heap'],
  '660': ['math'],
  '661': ['array'],
  '662': ['tree'],
  '663': ['tree'],
  '664': ['depth-first-search', 'dynamic-programming'],
  '665': ['array'],
  '666': ['tree'],
  '667': ['array'],
  '668': ['binary-search'],
  '669': ['tree'],
  '670': ['array', 'math'],
  '671': ['tree'],
  '672': ['math'],
  '673': ['dynamic-programming'],
  '674': ['array'],
  '675': ['breadth-first-search'],
  '676': ['hash-table', 'trie'],
  '677': ['trie'],
  '678': ['string'],
  '679': ['depth-first-search'],
  '680': ['string'],
  '681': ['string'],
  '682': ['stack'],
  '683': ['array', 'binary-search-tree'],
  '684': ['graph', 'tree', 'union-find'],
  '685': ['depth-first-search', 'graph', 'tree', 'union-find'],
  '686': ['string'],
  '687': ['tree'],
  '688': ['dynamic-programming'],
  '689': ['array', 'dynamic-programming'],
  '690': ['breadth-first-search', 'depth-first-search', 'hash-table'],
  '691': ['backtracking', 'dynamic-programming'],
  '692': ['hash-table', 'heap', 'trie'],
  '693': ['bit-manipulation'],
  '694': ['depth-first-search', 'hash-table'],
  '695': ['array', 'depth-first-search'],
  '696': ['string'],
  '697': ['array'],
  '698': ['dynamic-programming'],
  '699': ['segment-tree', 'binary-search-tree'],
  '711': ['depth-first-search', 'hash-table'],
  '712': ['dynamic-programming'],
  '713': ['array', 'two-pointers'],
  '714': ['array', 'dynamic-programming', 'greedy'],
  '715': ['array', 'segment-tree', 'binary-search-tree'],
  '716': ['design'],
  '717': ['array'],
  '718': ['array', 'binary-search', 'dynamic-programming', 'hash-table'],
  '719': ['array', 'binary-search', 'heap'],
  '720': ['hash-table', 'trie'],
  '721': ['depth-first-search', 'union-find'],
  '722': ['string'],
  '723': ['array', 'two-pointers'],
  '724': ['array'],
  '725': ['linked-list'],
  '726': ['hash-table', 'stack'],
  '727': ['dynamic-programming'],
  '728': ['math'],
  '729': ['array'],
  '730': ['dynamic-programming', 'string'],
  '731': ['array', 'binary-search-tree'],
  '732': ['segment-tree', 'binary-search-tree'],
  '733': ['depth-first-search'],
  '734': ['hash-table'],
  '735': ['stack'],
  '736': ['string'],
  '737': ['depth-first-search', 'union-find'],
  '738': ['greedy'],
  '739': ['hash-table', 'stack'],
  '740': ['dynamic-programming'],
  '741': ['dynamic-programming'],
  '742': ['tree'],
  '743': ['breadth-first-search', 'depth-first-search', 'graph', 'heap'],
  '744': ['binary-search'],
  '745': ['trie'],
  '746': ['array', 'dynamic-programming'],
  '748': ['hash-table'],
  '749': ['depth-first-search'],
  '750': ['dynamic-programming']
};

plugin.getProblems = function(cb) {
  plugin.next.getProblems(function(e, problems) {
    if (e) return cb(e);

    problems.forEach(function(problem) {
      var id = String(problem.id);
      if (id in COMPONIES) {
        problem.companies = (problem.companies || []).concat(COMPONIES[id]);
      }
      if (id in TAGS) {
        problem.tags = (problem.tags || []).concat(TAGS[id]);
      }
    });
    return cb(null, problems);
  });
};

module.exports = plugin;
